\subsection{可去集($DSet$)}
我们用可去集(或$DSet$)捕捉节点在切片选择时的容错能力。通俗地讲，在一个$DSet$之外的安全性和存活性是可以保证的，而不需要考虑$DSet$中的节点的行为。换句话说，在一个最优可恢复的FBAS中，如果一个$DSet$包含每个恶性行为节点，它也会包含每个错误节点；而反之所有在$DSet$之外的节点都是正确的。举例来说，在一个有$3f+1$个节点且{\quorum}大小为$2f+1$的中心化FBPT系统中，任意小于等于$f$个节点可以组成一个$DSet$。由于FBPT事实上能够在有$f$个错误节点的情形下存活下来，它的健壮性是最优的。

在不那么典型的图\ref{fig:hierarchy}的例子中，$\left\{v_1\right\}$是一个$DSet$，这是因为顶层的节点可能会出现错误而不影响系统的其余部分。$\left\{v_9\right\}$也是一个$DSet$，这是因为其它的节点的正确性都不依赖$v_9$。$\left\{v_6,\ldots,v_{10}\right\}$是一个$DSet$，这是因为$v_5$和顶层节点都不会依赖于任意其它5个节点。$\left\{v_5,v_6\right\}$\textit{不是}一个$DSet$，因为它是$v_9$和$v_{10}$的一个切片，因此如果它们是完全恶意的话，它可能对$v_9$和$v_{10}$撒谎，并且让它们断言相互矛盾或和系统内其它节点矛盾的陈述。

为了防止一个错误行为的$DSet$影响其它节点的正确性，系统必须满足两个性质。对于安全性，删除$DSet$不会暗中破坏{\quorum}交。对于存活性，$DSet$不能够否认其它节点的工作{\quorum}。这使得我们有以下定义：

\begin{definition}[DSet]
        令$\langle\mybm{V},\mybm{Q}\rangle$是一个FBAS而$B\subseteq \mybm{Q}$是一个节点集合，我们称集合$B$是可去集(或$DSet$)当且仅当：
        \begin{enumerate}
                \item (除$B${\quorum}可交性) $\langle\mybm{V},\mybm{Q}\rangle^{B}$是{\quorum}可交的；
                \item (除$B${\quorum}可达性) 要么$\mybm{Q}\backslash B$是$\langle\mybm{V},\mybm{Q}\rangle$中的一个{\quorum}，要么$B=\mybm{V}$。
        \end{enumerate}
\end{definition}

除$B${\quorum}可达性防止$B$中的节点拒绝回复请求或阻塞其它节点运行。除$B${\quorum}可交性防止对立的情形——$B$中的节点制造矛盾的断言而让其它的节点对同一个{\slot}对外产生不一致的值。在切片选择时节点必须权衡这两类威胁。其它条件相同的情况下，大一点的切片会产生大一点的{\quorum}从而会有更多的重叠，这意味着更少的错误节点集合$B$在删除时将会破坏{\quorum}交。另一方面，大一点的切片更可能包含错误节点，这会危及到{\quorum}的可达性。

最小的包含所有恶性行为的节点的$DSet$可能也会包含良性行为的节点；这反映了这样一个事实：一个足够大的恶性行为的节点集合可能会导致良性行为的节点出现错误。例如，在图\ref{fig:hierarchy}中，包含$v_5$和$v_6$的最小$DSet$是$\left\{v_5,v_6,v_9,v_{10}\right\}$。在一种特殊的情形下，$\mybm{V}$是$DSet$。这个特殊情形的动机在于，如果所有的节点都出现了错误，那么剩余的(零个)节点自然是正确的。给定足够多的恶性行为的节点，包含所有节点的$\mybm{V}$可能是包含所有恶性行为节点的最小$DSet$，这意味着没有协议能够保证有比整个系统失败更好的结果了。

一个FBAS系统中的$DSet$是由{\quorum}函数$\mybm{Q}$事先决定的。而哪个节点的行为是良性或是恶性的由运行时行为决定，例如机器被入侵了。我们关心的$DSet$是那些包含恶性行为的节点，因为它们能够帮助我们把可以保证正确的节点从不能保证正确的节点中辨别出来。有鉴于此，我们引入下面的术语：

\begin{definition}[完好的]
        FBAS中的节点$v$是\textbf{完好的}当且仅当存在一个包含所有恶性行为的$DSet$集合$B$且$v\not\in B$。
\end{definition}

\begin{definition}[被污染的]
        FBAS中的节点$v$是\textbf{被污染的}当且仅当它不是完好的。
\end{definition}

\begin{figure}
\centering 
\tabulinesep2pt
\begin{tabu} to \textwidth{>{\bfseries}X[1.8,r]X[6.2,l]}\toprule
良性 / 恶性行为的 &
%
节点的局部属性，独立于其它节点(除非用于切片选择验证)。\\
%
\midrule
完好的 / 被污染的 &
%
给定节点{\quorum}切片和特定恶性行为节点集合下的属性。被污染的节点是恶性行为的或者(可能是间接地)依赖于很多恶性行为节点。\\
%
\midrule
正确的 / 失败的 &
%
给定节点的{\quorum}切片、具体协议及实际网络行为下的节点属性。共识协议的目标就在于在任何只要可能的情形下保证节点的正确性。\\
%
\bottomrule
\end{tabu}
\caption{FBAS节点的关键属性}
\label{fig:nodeprop} 
\end{figure}

即使一个节点$v$本身是良性行为的，当它被足够多的错误节点所包围而被阻塞进程或状态被破坏时，它也是被污染的。FBAS都不能保证被污染节点的正确性。图\ref{fig:nodeprop}概述了节点的关键属性。下面的定理减轻了分析的困难，它们表明被污染节点集合总是FBAS中的一个有{\quorum}交的$DSet$。

\begin{theorem}\label{thm:quorum_subset_is_quorum}
        令$U$是FBAS $\langle\mybm{V},\mybm{Q}\rangle$中的一个{\quorum}，$B\subseteq \mybm{Q}$是节点集合，并令$U^\prime=U\backslash B$。若$U^\prime\neq \emptyset$，则$U^\prime$是$\langle\mybm{V},\mybm{Q}\rangle^B$中的一个{\quorum}。
\end{theorem}

\begin{proof}
        因为$U$是一个{\quorum}，每个$U$中的节点$v$都有一个$q\in\mybm{Q}(v)$使得$q\subseteq U$。由于$U^\prime\subseteq U$，则有对每个节点$v\in U^\prime$存在$q\in\mybm{Q}(v)$使得$q\backslash B\subseteq U^\prime$。重新使用删除记号书写即得$\forall v\in U^\prime,\exists q\in\mybm{Q}^B(v)$使得$q\subseteq U^\prime$；因为$U^\prime \subseteq \mybm{Q}\backslash B$，这表示$U^\prime$是$\langle\mybm{V},\mybm{Q}\rangle^B$的一个{\quorum}。
\end{proof}

\begin{theorem}\label{thm:dset_interset_is_dset}
        如果$B_1$和$B_2$是FBAS $\langle\mybm{V},\mybm{Q}\rangle$的一个有{\quorum}交的$DSet$，那么$B=B_1\cap B_2$也是一个$DSet$。
\end{theorem}

\begin{proof}
        令$U_1=\mybm{Q}\backslash B_1$且$U_2=\mybm{Q}\backslash B_2$。如果$U_1=\emptyset$，那么$B_1=\mybm{V}$，有$B=B_2$(是一个$DSet$)，结论成立。类似地，如果$U_2=\emptyset$，那么$B=B_1$，结论成立。否则，注意到除$DSet$ $B_1$和$B_2$的{\quorum}可达性，$U_1$和$U_2$是$\langle\mybm{V},\mybm{Q}\rangle$中的{\quorum}。由定义可知，两个{\quorum}的并仍然是{\quorum}{\footnote{译注：设$U=U_1\cup U_2$，$\forall v\in U$，必有$v\in U_1$或$v\in U_2$；不妨设$v\in U_1$，由$U_1$定义可知，$\exists q\in \mybm{Q}(v), s.t., q\subseteq U_1\subseteq U$。}}。因此${\mybm{Q}\backslash B}=U_1\cup U_2$是一个{\quorum}且它有除$B${\quorum}可达性{\footnote{译注：因为$(\mybm{Q}\backslash B)\backslash B=\mybm{Q}\backslash B$是{\quorum}。}}。
        
        我们需要说明除$B${\quorum}可交性。令$U_a$和$U_b$是$\langle\mybm{V},\mybm{Q}\rangle^{B}$的任意两个{\quorum}，$U=U_1\cap U_2 = U_2\backslash B_1$。根据$\langle\mybm{V},\mybm{Q}\rangle$的{\quorum}交性质，$U=U_1\cap U_2  \neq \emptyset$。但由定理\ref{thm:quorum_subset_is_quorum}，$U=U_2\backslash B_1$必为$\langle\mybm{V},\mybm{Q}\rangle^{B_1}$的一个{\quorum}。考虑到$U_a\backslash B_1$和$U_a\backslash B_2$不可能同时为空集，否则$U_a\backslash B$为空与$U_a$是{\quorum}的定义矛盾。因此，由定理\ref{thm:quorum_subset_is_quorum}，要么$U_a\backslash B_1$是$(\langle\mybm{V},\mybm{Q}\rangle^{B})^{B_1}=\langle\mybm{V},\mybm{Q}\rangle^{B_1}$的一个{\quorum}，要么$U_a\backslash B_2$是$\langle\mybm{V},\mybm{Q}\rangle^{B_2}$的一个{\quorum}，或者两者都成立。在前一种情形下，注意到假如$U_a\backslash B_1$是$\langle\mybm{V},\mybm{Q}\rangle^{B_1}$的{\quorum}，那么由$\langle\mybm{V},\mybm{Q}\rangle^{B_1}${\quorum}可交性可得$(U_a\backslash B_1)\cap U\neq \emptyset$；由于$(U_a\backslash B_1)\cap U = (U_a\backslash B_1)\backslash B_2$，可知$U_a\backslash B_2\neq \emptyset$，从而$U_a\backslash B_2$是$\langle\mybm{V},\mybm{Q}\rangle^{B_2}$中的一个{\quorum}(定理\ref{thm:quorum_subset_is_quorum})。类似地，$U_b\backslash B_2$也必是$\langle\mybm{V},\mybm{Q}\rangle^{B_2}$的一个{\quorum}。但除$B${\quorum}可交性告诉我们$(U_a\backslash B_2)\cap (U_b\backslash B_2)\neq \emptyset$，这仅在$U_a\cap U_b\neq \emptyset$时可能。
\end{proof}

\begin{theorem}\label{thm:befouleds_are_dset}
        在一个有{\quorum}交的FBAS中，被污染的集合是一个$DSet$。
\end{theorem}

\begin{proof}
        令$B_{min}$是一个包含所有恶性行为节点的$DSet$的交集。由\textbf{完整性}的定义可知一个节点$v$是完好的当且仅当$v\not\in B_{min}${\footnote{译注：$v\not\in B_{min}=\bigcap B_{i}\iff \exists B_{k}\;s.t., v\not\in B_{k}$,后者正是$v$是完好节点的定义。}}。因此$B_{min}$就是被污染节点集合。由定理\ref{thm:dset_interset_is_dset}可知，$DSet$在交的意义下是闭的,因此$B_{min}$也是一个$DSet$。
\end{proof}
